Предлагается к рассмотрению универсальный аппаратно-программный ком-плекс, обеспечивающий решение нескольких задач, возникающих в процессе проектирования и отладки цифровых микропроцессорных систем. Ниже приво-дится описание этих задач и способов их решения.
Внутрисхемная эмуляция микропроцессоров и микроконтроллеров.
В процессе разработки устройств на основе микропроцессоров / микрокон-троллеров (МП/МК) одним из наиболее трудоемких и длительных по времени этапов является отладка. Для уменьшения трудозатрат и ускорения процесса от-ладки применяют различные программные и аппаратные отладочные средства. К наиболее универсальным и эффективным средствам можно отнести внутрисхем-ные эмуляторы. Внутрисхемный эмулятор - это аппаратно-программный ком-плекс, который позволяет производить совместную отладку аппаратного и про-граммного обеспечения разрабатываемого устройства в режиме реального вре-мени.
Как правило, внутрисхемные эмуляторы предназначены для отладки одного типа МП/МК или нескольких типов в рамках одного семейства МП/МК. У тако-го подхода есть существенные недостатки. Во-первых необходимо приобретать соответствующий эмулятор для каждого нового типа МП/МК, используемого в разработках. Поскольку эмуляторы весьма дороги, это приводит к значительным материальным издержкам. Во-вторых зачастую нужно обучаться приемам рабо-ты с новым эмулятором и программным обеспечением к нему, что неизбежно сказывается на сроках разработки.
От этих недостатков избавлен предлагаемый к рассмотрению универсальный внутрисхемный эмулятор UniICE. В нем нашел применение модульный принцип. Основные блоки эмулятора, общие для всех эмулируемых МП/МК размещены внутри базового модуля. Адаптация к конкретному МП/МК осуществляется с помощью сменного модуля. Сменный модуль представляет собой плату с уста-новленным эмуляционным кристаллом, роль которого в ряде случаев выполняет сам целевой МП\МК. Следует отметить, что эмулироваться могут только те МП/МК, которые имеют возможность обращения к внешней памяти программ, либо для которых существуют отладочные кристаллы с такой возможностью.
Базовый модуль соединяется с инструментальным компьютером через дву-направленный параллельный порт. К базовому модулю через специальный ин-терфейс присоединяется сменный модуль. Поскольку могут существовать вари-анты исполнения одного и того же типа МП/МК в разных корпусах, дополни-тельно к сменному модулю можно присоединить соответствующую насадку. Да-лее вся конструкция соединяется с отлаживаемым устройством, заменяя целевой МП/МК.
Базовый модуль содержит блок адресации, блок памяти, блок памяти точек останова, блок трассировки, анализатор кода и программируемый генератор так-товых импульсов. Блок адресации служит для адресации блоков внутри эмулято-ра при обращении с инструментального компьютера. Блок памяти эмулирует па-мять программ и данных отлаживаемой системы, а так же служит для хранения специализированной программы - монитора. Блок памяти точек останова хранит информацию об адресах, по достижению которых нужно прервать выполнение отлаживаемой программы и передать управление монитору. С помощью анали-затора кода отлеживается ход выполнения программы и обеспечивается пошаго-вый режим и останов в контрольных точках. Блок трассировки хранит информа-цию о состоянии шин и сигналов процессора и внутренних ресурсов эмулятора в течение нескольких машинных циклов, предшествовавших останову выполнения отлаживаемой программы. Программируемый генератор вырабатывает тактовые импульсы с заданной частотой.
Для получения внутрисхемного эмулятора на базе UniICE для того или иного МП\МК требуется разработать соответствующий сменный модуль и написать программный модуль настройки на одном из языков высокого уровня для инте-грации с системами моделирования Winter и IEESD-2000. В этом модуле по оп-ределенным правилам описываются внутренние ресурсы данного МП\МК. Оче-видно, что процедура разработки эмулятора максимально упрощена.
Таким образом, при использовании UniICE достигается экономия временных и материальных ресурсов не только при эксплуатации эмуляторов, но и при их проектировании.
Внутрисхемная симуляция цифровых систем.
Часто возникает потребность в проверке взаимодействия разрабатываемого узла или блока с уже имеющимся аппаратным обеспечением. Для решения этой задачи применяется внутрисхемный симулятор UniICS.
UniICS является своеобразным "мостом" между программной моделью циф-рового устройства, функционирующей на инструментальном компьютере и не-которой аппаратной средой, с которой эта модель взаимодействует. При этом симулятор обеспечивает двунаправленную трансляцию сигналов между средой моделирования и реальной аппаратурой. К примеру, можно обеспечить появле-ние соответствующих сигналов на линиях ввода-вывода симулятора при имита-ции выполнения команды записи данных в порт моделью микроконтроллера.
Таким образом, симулятор дает возможность имитировать работу практиче-ски любых цифровых устройств, сложность которых может ограничиваться лишь возможностями системы моделирования и числом линий ввода-вывода внутрисхемного симулятора.
В качестве программного обеспечения для симулятора могут использоваться: среда совместного моделирования аппаратного и программного обеспечения IEESD-2000, среда моделирования аппаратного обеспечения HLCCAD и среда моделирования программного обеспечения WInter. Эти программные системы , обладают соответствующими функциональными возможностями (удобными средствами ввода и редактирования схем и текстов программ, анализа результа-тов моделирования, поддержкой различных типов моделей и их комбинаций, в т.ч. многопроцессорных).
Эмуляция цифровых систем.
В процессе разработки цифровых систем часто возникает потребность в про-верке адекватности работы спроектированных блоков. Для этого обычно прибе-гают к изготовлению макетных образцов.
Используя системы моделирования IEESD-2000 или HLCCAD и внутрисхем-ный симулятор UnICS, пользователь имеет возможность "погружать" разраба-тываемую схему или ее часть в реальное "железо" и проверять ее работу, ис-пользуя тесты, проверенные на модели. Для выбранного пользователем блока системами моделирования генерируется VHDL-описание, в котором этот блок соединен с VHDL-описанием UnICS. Далее сторонними средствами производит-ся синтез и формируется файл, используемый для прошивки программируемой логической интегральной схемы (ПЛИС). UnICS обеспечивает двунаправленную трансляцию сигналов между средой моделирования и исследуемым блоком.
Таким образом, отпадает необходимость в макетировании, что приводит к экономии времени и средств при проектировании цифровых систем.
Кроме того, возможны комбинации способов решения описанных задач. На-пример, можно обеспечить моделирование системы, часть которой уже реализо-вана как аппаратное решение, часть эмулируется с помощью UnICS, а еще одна часть находится на стадии модели.
Также реализованы средства для удаленной работы с UniICS. При этом ре-альное аппаратное обеспечение подключается к серверу, на удаленных компью-терах запускаются системы моделирования. Данные между системой моделиро-вания и сервером передаются по протоколу TCP/IP. Обеспечена возможность многопользовательской работы.
Очень перспективной является возможность реализации описанных решений в виде IP-компонент, пригодных для встраивания в новые разработки МП\МК и систем на кристаллах. Это позволит получить высокоэффективные средства от-ладки прямо на чипах и, тем самым, у разработчиков отпадет необходимость в приобретении дорогостоящего оборудования.
Описанный комплекс реализован на основе ПЛИС фирмы ALTERA. Обеспе-чены интерфейсы для подключения инструментального компьютера, дополни-тельных сменных модулей, а также узлов отлаживаемых систем. Для решения той или иной задачи ПЛИС соответствующим образом конфигурируется. В нее могут быть прошиты схемы UniICE, UniICS или комбинация UniICS с эмули-руемой схемой. Комплекс используется поведения лабораторных и курсовых ра-бот студентов математического факультета Гомельского государственного уни-верситета им. Ф. Скорины. Недавно получено положительное решение по заявке о выдаче патента Российской Федерации на внутрисхемный эмулятор UniICE.